package br.com.fourlinux.java470.aula3;

import java.math.BigDecimal;

public class EntregaVan extends MetodoEntrega{
	
	// Características de produto da Categoria C
	public static final double COMPRIMENTO_C = 200,
		LARGURA_C = 150,
		ALTURA_C = 100,
		PESO_C = 20000;
	public static final BigDecimal	PRECO_C = new BigDecimal(50);
	
	// Características de produto da Categoria B
	public static final double COMPRIMENTO_B = 100,
		LARGURA_B = 50,
		ALTURA_B = 40,
		PESO_B = 8000;
	public static final BigDecimal	PRECO_B = new BigDecimal(30);
	
	// Características de produto da Categoria A
	public static final double COMPRIMENTO_A = 35,
		LARGURA_A = 25, 
		ALTURA_A = 5, 
		PESO_A = 1000;
	
	public static final BigDecimal	PRECO_A = new BigDecimal(10);
	
	public boolean isEntregavel(Produto prod) {
		if (prod.getPeso() > PESO_C
				|| prod.getComprimento() > COMPRIMENTO_C
				|| prod.getAltura() > LARGURA_C
				|| prod.getLargura() > ALTURA_C)
			return false;
		return true;
	}
	
	public BigDecimal getValorFrete(Produto prod) {
		
		if(!isEntregavel(prod))
			return null;
		
		if (prod.getPeso() <= PESO_A
				&& prod.getComprimento() <= COMPRIMENTO_A
				&& prod.getLargura() <= LARGURA_A
				&& prod.getAltura() <= ALTURA_A)			
			return PRECO_A;
		else if (prod.getPeso() <= PESO_B
				&& prod.getComprimento() <= COMPRIMENTO_B
				&& prod.getLargura() <= LARGURA_B
				&& prod.getAltura() <= ALTURA_B)
			return PRECO_B;
		else if(prod.getPeso() <= PESO_C
				&& prod.getComprimento() <= COMPRIMENTO_C
				&& prod.getLargura() <= LARGURA_C
				&& prod.getAltura() <= ALTURA_C)
			return PRECO_C;
		return null;
	}
}